/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Com.Sicovi.DAO;

import Com.Sicovi.Entidad.Usuario;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

/**
 *
 * @author darwin
 */
public class UsuarioDAO {
    private EntityManagerFactory emf;
    private EntityManager em;
    
    public UsuarioDAO(){
        emf=Persistence.createEntityManagerFactory("SICOVIPU");
        em=emf.createEntityManager();
    }
    
    public void CloseEntityManager(){
        em.close();
    }
    
    public boolean InsertarUsuario(Usuario u){
        boolean b=false;
        try{
            em.getTransaction().begin();
            em.persist(u);
            em.getTransaction().commit();
            b=true;
        }catch(Exception e){
            em.getTransaction().rollback();
        }
        return b; 
    }
    
   
     public List<Usuario> BuscarUsuario(String codigo){
        Query q = em.createQuery("select u from Usuario u where u.dni='"+codigo+"'");
       return q.getResultList();
    }
     
     public List<Usuario> getListarUsuario(){
     Query q = em.createQuery("select u from Usuario u WHERE u.estado=1");
       return q.getResultList();
    }
     
      public boolean  eliminaUsuario(int idUser){
      boolean b=false;
        try{
            em.getTransaction().begin();
            Query q = em.createQuery("UPDATE Usuario u SET u.estado=0 WHERE u.idusuario="+idUser);
            q.executeUpdate();
            em.getTransaction().commit();
            b=true;
        }catch (Exception e){
            em.getTransaction().rollback();
        }
        return b;
    }
      
      public boolean validarUsuario(String login,String password){
        boolean exito=false;
        Query q = em.createQuery("SELECT u FROM Usuario u WHERE u.login='"+login+"' AND u.password='"+password+"'");
        List<Usuario> usuarios=q.getResultList();
        if (usuarios.isEmpty()){
            exito=false;
        }
        else{           
            exito=true;
        }
        return exito;
      }
    
}
